/***********************************************************************************
 * 文 件 名   : chaintable.h
 * 负 责 人   : 唐家雄
 * 创建日期   : 2018年10月25日
 * 文件描述   : 
 * 版权说明   : Copyright (c) 2008-2018   宁波方太厨具有限公司
 * 其    他   : 
 * 修改日志   : 
***********************************************************************************/
#ifndef CHAINTABLE_H
#define CHAINTABLE_H


typedef struct Chain_Table
{
	void* data;
	struct Chain_Table *prev;
	struct Chain_Table *next;
}ChainTable;




//

class CChainTable
{
	public:
	CChainTable();
	~CChainTable();
	
	bool InsertByPathForward(unsigned int path, void* data);
	bool InsertByPathBehind(unsigned int path, void* data);
	bool InsertByDataForward(void* targetdata, void* data);
	bool InsertByDataBehind(void* targetdata, void* data);

	int SearchData(void* targetdata);
	bool DeleteDate(void* targetdata, bool isall);
	
	private:
	ChainTable* GetNode(unsigned int path);
	ChainTable *mHead;
	int mCount;
};
#endif
